#pragma once
#include <sstream>


#include <string>
#include "../SQLExpr.h"
#include "../SQLExprImpl.h"

#include "SQLLiteralExpr.h"
class SQLASTVisitor;

class SQLNullExpr : virtual public SQLExprImpl, virtual public SQLLiteralExpr
{
public:
  static string_ptr class_;
  SQLNullExpr();
  SQLNullExpr(SQLObject_ptr parent);
  virtual ~SQLNullExpr();
  SHAREDOBJECT(SQLNullExpr);

  void output(std::stringstream * buf);

  // int hashCode();
  // BOOL_ptr equals(Object o);
  // SQLNullExpr *clone();
  virtual SQLObject_ptr clone();

protected:
  void accept0(SQLASTVisitor_ptr visitor);
};

